htt[p]erl, simulador de web server
Publicado por Fábio Berbert de Paula 06/01/2003
[ Hits: 8.140 ]
Homepage: https://fabio.automatizando.dev
htt[p]erl é um script usado para simular um servidor web, muito bom para quem deseja entender melhor o protocolo de comunicação entre browser e servidor. O programa fica escutando na porta TCP 80 e envia uma página HTML padrão para o browser do usuário.
#!/usr/bin/perl
# ---------------------------------------------------------
# httperl.pl (htt[p]erl)
#
# Script em Perl usado para simular um servidor web, muito
# bom para quem deseja entender melhor o protocolo de
# comunicação entre browser e servidor
#
#
# Programado por Fábio Berbert de Paula
# <fabio@vivaolinux.com.br>
#
# Rio de Janeiro, 06 de Janeiro de 2003
# ---------------------------------------------------------
$| = 1;
# criar socket na porta 80 do servidor
use IO::Socket;
my $sock = new IO::Socket::INET (
LocalPort => '80',
Type => SOCK_STREAM,
Proto => 'tcp',
Listen => 10
);
die "Não consegui iniciar o servidor: $!\n" unless $sock;
print "Servidor iniciado ...\n";
# definir o cabeçalho de retorno básico
my $retorno = "
HTTP/1.1 200 OK
Server: htt[p]erl/1.0 (GNU/Linux)
Connection: close
Content-Type: text/html
<html>
<body>
Uma cortesia de <a href=\"http://www.vivaolinux.com.br\">Viva o Linux</a>.
</body>
</html>
";
# aceitar conexões TCP
while (my $new_sock = $sock->accept()) {
while($linha = <$new_sock>) {
# imprimir o cabeçalho recebido pelo browser do usuário
print $linha;
# se linha vazia, então o browser envio câmbio, vamos respondê-lo
if ($linha!~/[A-Za-z0-9]/) {
print $new_sock $retorno;
# fechar conexão com o cliente
$new_sock = '';
}
}
close(W);
}
close($sock);
Introdução a Persistência de Estrutura de Dados em Perl
Algoritmo de Fatoração de Fermat (FFA) em Perl
Verificação de IP em blacklists
Nenhum comentário foi encontrado.
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Gentoo binário em 2026: UEFI, LUKS, Btrfs e Systemd
Trabalhando Nativamente com Logs no Linux
Jogando Daikatana (Steam) com Patch 1.3 via Luxtorpeda no Linux
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Gentoo: Trocando wpa_supplicant pelo iwd no NetworkManager (Systemd)
Necessário autenticar ao imprimir - Ubuntu X Windowns (1)
O que houve com slackware ??? (11)
O Free Download Manager não abre no Fedora 43 KDE Plasma (2)









